home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / dev / obero / OberonAModules.lha / Triton.mod < prev    next >
Text File  |  1999-02-26  |  25KB  |  561 lines

  1. (***************************************************************************
  2.  
  3.      $RCSfile: Triton.mod $
  4.   Description: Interface to triton.library
  5.  
  6.    Created by: Helmuth Ritzer
  7.     $Revision: 1.0 $
  8.       $Author: hr $
  9.         $Date: 1995/01/21 16:06:42 $
  10.  
  11.   This is a modified version of the interface module for
  12.   AmigaOberon done by Peter Fröhlich.
  13.  
  14.   This release contains no translations of the C macros.
  15.  
  16. ***************************************************************************
  17. Updated by: Morten Bjergstrøm
  18. EMail: mbjergstroem@hotmail.com
  19. )
  20.  
  21. <* STANDARD- *>
  22.  
  23. MODULE [2] Triton;
  24.  
  25. IMPORT
  26.   SYS := SYSTEM, Kernel, e := Exec, u := Utility, gfx := Graphics,
  27.   i := Intuition, gt := GadTools, w := Workbench;
  28.  
  29.  
  30. (*****************************************************************************)
  31.  
  32. CONST
  33.  
  34.   tritonName *  = "triton.library";
  35.  
  36.  
  37. (*****************************************************************************)
  38.  
  39. TYPE
  40.   MessagePtr*    = POINTER TO Message;
  41.   AppPtr*        = POINTER TO App;
  42.   DimensionsPtr* = POINTER TO Dimensions;
  43.   ProjectPtr*    = POINTER TO Project;
  44.  
  45.   DisplayObjectPtr* = POINTER TO RECORD END;
  46. (* --- The Triton message --- *)
  47.  
  48.   Message* = RECORD
  49.     project-   : ProjectPtr; (* The project which triggered the message       *)
  50.     id-        : e.ULONG;    (* The object's ID (where appropriate)           *)
  51.     class-     : e.ULONG;    (* The Triton message class                      *)
  52.     data-      : e.ULONG;    (* The class-specific data                       *)
  53.     code-      : e.ULONG;    (* \ Currently only used                         *)
  54.     qualifier- : e.ULONG;    (* / by TRMS_KEYPRESSED                          *)
  55.     seconds-   : e.ULONG;    (* \ Copy of system clock time (Only where       *)
  56.     micros-    : e.ULONG;    (* / available! If not set, trm_Seconds is NULL) *)
  57.     app-       : AppPtr;     (* The project's application                     *)
  58.   END;
  59.  
  60. (* --- The Application Structure --- *)
  61.  
  62.   App* = RECORD (* This structure is PRIVATE! *)
  63.     memPool  : e.ADDRESS;    (* The memory pool    *)
  64.     bitMask  : e.LONGBITS;   (* Bits to Wait() for *)
  65.     name     : e.STRPTR;     (* Unique name        *)
  66.     longName : e.STRPTR;     (* User-readable name *)
  67.     info     : e.STRPTR;     (* Info string        *)
  68.     version  : e.STRPTR;     (* Version            *)
  69.     release  : e.STRPTR;     (* Release            *)
  70.     date     : e.STRPTR;     (* Compilation date   *)
  71.     appPort  : e.MsgPortPtr; (* AppMessage port    *)
  72.     idcmpPort   : e.MsgPortPtr;    (* IDCMP message port          *)
  73.     prefs       : e.ADDRESS;       (* Pointer to Triton app prefs *)
  74.     lastProject : ProjectPtr;      (* Used for menu item linking  *)
  75.     (*inputEvent  : IE.InputEventPtr*) (* Used for RAWKEY conversion  *)
  76.   END;
  77.  
  78. (* --- The Dimensions Structure --- *)
  79.  
  80.   Dimensions* = RECORD
  81.     left*     : e.UWORD;            (* Left                  *)
  82.     top*      : e.UWORD;            (* Top                   *)
  83.     width*    : e.UWORD;            (* Width                 *)
  84.     height*   : e.UWORD;            (* Height                *)
  85.     left2*    : e.UWORD;            (* Left                  *)
  86.     top2*     : e.UWORD;            (* Top                   *)
  87.     width2*   : e.UWORD;            (* Width                 *)
  88.     height2*  : e.UWORD;            (* Height                *)
  89.     zoomed*   : e.BOOL;             (* Window zoomed?        *)
  90.     reserved* : ARRAY 3 OF e.UWORD; (* For future expansions *)
  91.   END;
  92.  
  93. (* --- The Project Structure --- *)
  94.  
  95.   Project* = RECORD (* This structure is PRIVATE! *)
  96.     app                  : AppPtr;            (* Our application *)
  97.     screen               : i.ScreenPtr;       (* Our screen, always valid *)
  98.     lockedPubScreen      : i.ScreenPtr;       (* Only valid if we're using a PubScreen *)
  99.     window               : i.WindowPtr;       (* The window *)
  100.     id                   : e.ULONG;           (* The window ID *)
  101.     appWindow            : w.AppWindowPtr;    (* AppWindow for icon dropping *)
  102.     idcmpFlags           : e.ULONG;           (* The IDCMP flags *)
  103.     flags                : e.ULONG;           (* Triton window flags *)
  104.     newMenu              : gt.NewMenuPtr;     (* The newmenu stucture built by Triton *)
  105.     newMenuSize          : e.ULONG;           (* The number of menu items in the list *)
  106.     menu                 : i.MenuPtr;         (* The menu structure *)
  107.     nextSelect           : e.UWORD;           (* The next selected menu item    *)
  108.     visualInfo           : e.ADDRESS;         (* The VisualInfo of our window *)
  109.     drawInfo             : i.DrawInfoPtr;     (* The DrawInfo of the screen *)
  110.     dimensions           : DimensionsPtr;     (* User-supplied dimensions *)
  111.     windowStdHeight      : e.ULONG;           (* The standard height of the window *)
  112.     leftBorder           : e.ULONG;           (* The width of the left window border *)
  113.     rightBorder          : e.ULONG;           (* The width of the right window border *)
  114.     topBorder            : e.ULONG;           (* The height of the top window border *)
  115.     bottomBorder         : e.ULONG;           (* The height of the bottom window border *)
  116.     innerWidth           : e.ULONG;           (* The inner width of the window *)
  117.     innerHeight          : e.ULONG;           (* The inner height of the window *)
  118.     zipDimensions        : ARRAY 4 OF e.WORD; (* The dimensions for the zipped window *)
  119.     aspectFixing         : e.UWORD;           (* Pixel aspect correction factor *)
  120.     objectList           : e.MinList;         (* The list of display objects *)
  121.     menuList             : e.MinList;         (* The list of menus *)
  122.     idList               : e.MinList;         (* The ID linking list (menus & objects) *)
  123.     memPool              : e.ADDRESS;         (* The memory pool for the lists *)
  124.     hasObjects           : e.BOOL;            (* Do we have display objects ? *)
  125.     propAttr             : gfx.TextAttrPtr;   (* The proportional font attributes *)
  126.     fixedWidthAttr       : gfx.TextAttrPtr;   (* The fixed-width font attributes *)
  127.     propFont             : gfx.TextFontPtr;   (* The proportional font *)
  128.     fixedWidthFont       : gfx.TextFontPtr;   (* The fixed-width font *)
  129.     openedPropFont       : e.BOOL;            (* \ Have we opened the fonts ? *)
  130.     openedFixedWidthFont : e.BOOL;            (* / *)
  131.     totalPropFontHeight  : e.UWORD;           (* Height of prop font incl. underscore *)
  132.     backfillType         : e.ULONG;           (* The backfill type *)
  133.     backfillHook         : u.HookPtr;         (* The backfill hook *)
  134.     gadToolsGadgetList   : i.GadgetPtr;       (* List of GadTools gadgets *)
  135.     prevGadget           : i.GadgetPtr;       (* Previous GadTools gadget *)
  136.     newGadget            : gt.NewGadgetPtr;   (* GadTools NewGadget *)
  137.     invisibleRequest     : i.RequesterPtr;    (* The invisible blocking requester *)
  138.     isUserLocked         : e.BOOL;            (* Project locked by the user? *)
  139.     currentID            : e.ULONG;           (* The currently keyboard-selected ID *)
  140.     isCancelDown         : e.BOOL;            (* Cancellation key pressed? *)
  141.     isShortcutDown       : e.BOOL;            (* Shortcut key pressed? *)
  142.     underscore           : e.UBYTE;           (* The underscore character *)
  143.     escClose             : e.BOOL;            (* Close window on Esc ? *)
  144.     delZip               : e.BOOL;            (* Zip window on Del ? *)
  145.     pubScreenFallBack    : e.BOOL;            (* Fall back onto default public screen ? *)
  146.     fontFallBack         : e.BOOL;            (* Fall back to topaz.8 ? *)
  147.     oldWidth             : e.UWORD;           (* Old window width *)
  148.     oldHeight            : e.UWORD;           (* Old window height *)
  149.     quickHelpWindow      : i.WindowPtr;       (* The QuickHelp window *)
  150.     quickHelpObject      : DisplayObjectPtr;  (* Object for which help is popped up *)
  151.     ticksPassed          : e.ULONG;           (* IntuiTicks passed since last MouseMove *)
  152.   END;
  153.  
  154. CONST
  155.  
  156. (* --- Message classes --- *)
  157.  
  158.   msCloseWindow* = 1; (* The window should be closed *)
  159.   msError*       = 2; (* An error occured. Error code in trm_Data *)
  160.   msNewValue